깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다.
이 과정에서 TDD를 이용한다. 언제든 실행이 가능한 자동화된 테스트 슈트를 사용한다.
오류가 나면 바로 오류가 나지 않도록 고친다. 각 단계마다 코드를 추가하고 테스트하는 과정을 반복한다.
-
인수 유형을 추가하려고 한다. → 인수가 모두 유사한 메서드를 제공하므로 클래스 하나로 합쳤다. (ArgumentMarshaler를 만들었다)
-
파생 클래스를 만들어 코드를 옮긴다.
-
코드를 정리한다.
-
새로운 인수 유형을 쉽게 추가한다. (원하던 것)
-
예외 코드를 분리해 독자 모듈로 옮긴다.
코드는 언제나 최대한 깔끔하고 단순하게 정리하자.